"""
函数式编程-应用
"""
list01 = [4,54,6,56,7,8]
# 传统方式


# 1. 定义一个函数找到第一个大于10的元素
def find_gt10(nums):
    for item in nums:
        if item > 10:
            return item


# 2. 定义一个函数找到第一个小于50的数字
def find_lt50(nums):
    for item in nums:
        if item < 50:
            return item




print(find_gt10(list01))
print(find_lt50(list01))

print("=======================================")
# 函数式编程实现
# 函数调用函数
# 1. 定义回调函数： 将不同的核心算法单独定义在函数中
# 回调函数：此函数作为一个函数的实参，先传递，后在恰当的时间调用
# 2. 定义高阶函数： 通过参数抽象回调函数
# 高阶函数： 此处可以简单的理解：调用函数的函数，

# 高阶函数： 接收函数作为参数的函数就是高阶函数
# 高阶函数： 返回一个函数作为其结果的函数就是高阶函数

# 定义一个函数找到第一个大于10的元素
def condition01(item):
    return item > 10

# 定义一个函数找到第一个小于50的数字
def condition02(item):
    return item < 50

# 定义调用函数的函数
def find_single(nums,condition):
    for item in nums:
        if condition(item):
            return item

print(find_single(list01,condition01))
print(find_single(list01,condition02))







